﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XF.Meeting.Entity.CommonEntity;
using XF.Meeting.Entity.DTO;
using XF.Meeting.Entity.Query;
using XF.Meeting.Entity.View;

namespace XF.Sugar.IService
{
    public partial interface IConferenceRoomService
    {
        DataSet GetMeeetUserPhoneFromOrgcalendars(int iD, out string StrError);
        Task<(bool, string)> AddMeetingRoom(MeetingRoomOrder entity);
        Task<MeetingRoomOrder> GetMeetingRoomByID(MeetingRoomQuery query);
        Task<(bool, string)> UpdateMeetingRoomByID(MeetingRoomOrder entity);
        Task<bool> DeleteMeetingRoom(MeetingRoomQuery entity);
        Task<(bool, string,List<int>, bool,bool,int)> MeetingOrder(LoginUser user, MeetingOrder entity);
        void SendWxMssage(CRoomPadQuery obj);
        Task<(bool, string, int, bool, bool)> UpdateConferenceInfo(LoginUser user,MeetingOrder entity);
        Task<(bool, string, int)> MinutesOrder(MeetingOrder entity);
        Task<(bool, string)> UpdateConferenceMinutes(MeetingOrder entity);
        Task<MinutesInfoSingle> GetCInfoMinutesByID(CInfoQuery query);
        Task<PageList<MinutesList>> GetCInfoMinutesList(CInfoQuery query);
        Task<PageList<MinutesList>> GetOrgMinutes(CInfoQuery query);
        Task<MeetAndRoomInfo> GetMeetRoomAndInfo(RoomQuery query);
        Task<PageList<MeetAndRoomInfoForWeek>> GetMeetRoomAndInfoForWeek(RoomQuery query);
        Task<PageListMobile<MeetAndRoomInfoForMobile>> GetMeetRoomAndInfoForMobile(RoomQuery query);
        Task<MeetAndRoomInfoForPad> GetMeetRoomAndInfoForPad(CRoomPadQuery query);
        Task<PageList<MeetingRoomInfo>> GetCRoomByRID(RoomQuery query);
        Task<List<PadColorEntity>> GetAllColor(int padType);
        Task<List<StateColorEntity>> GetStateColorByPadType(int padType);
        Task<PageList<MeetingRoomInfo>> GetCRoomInfoListByRID(RoomQuery query);
        Task<PageList<MeetingRoomInfo>> GetCRoomByKey(RoomQuery query);
        Task<PageList<MeetingInfo>> GetCInfoByAdmin(CInfoQuery query);
        Task<PageList<MeetingInfo>> GetCInfoByUser(CInfoQuery query);
        Task<MeetingInfoSingle> GetCInfoByID(CInfoQuery query);
        Task<DataTable> GetCInfoByID(int InfoId);
        DataSet getMeetInfoAndUserPhone(int iD, out string StrError);
        Task<bool> updateWxState(int CinfoId, out string strError);
        bool IsSendWX(int CinfoId, out string strError);
        Task<bool> MeetUpdateEnd(int CinfoId);
        Task<bool> UpdateMeetingEnd(CInfoQuery entity);

        Task<bool> UpdateMeetingInfoByID(MeetingOrder entity);
        Task<PageList<MeetingInfo>> GetAllCInfoByUser(CInfoQuery query);
        Task<bool> TransferMeeting(TransferMeeting entity);
        Task<(bool, string)> ExtendMeeting(ExtendMeeting entity);
        Task<bool> DeleteMeetingInfo(TransferMeeting entity);
        Task<(bool, string)> AddMeetingEquipment(MeetingEquipment entity);
        Task<bool> DeleteMeetingEquipment(MeetingEquipment entity);
        Task<(bool, string)> UpdateMeetingEquipment(MeetingEquipment entity);
        Task<PageList<MeetingEquipment>> GetMeetingEquipment(EquipmentQuery query);
        Task<bool> PadColorUpdate(StateColorQuery cInfoId);
        Task<bool> ApprovalMeeting(ApprovalMeeting entity);
        Task<List<CheckMinutesEntity>> CheckMinutes(CheckMinutesQuery query);
        Task<(bool,int)> SignInCInfo(string mobile, string cinfoId);
        Task<PageList<MeetingRoomInfo>> GetCRoomByRIDForUpdate(RoomQuery query);
        Task<ConferenceNotice> GetConferenceNotice();
        Task<(bool, string)> UpdateConferenceNotice(ConferenceNotice entity);
        Task<PageList<TransferRecord>> GetTransferRecord(TransferMeeting query);
        CInfoIds getMeetIdBystrBOID(string strBOID);
        Task<string> CheckMinutesNotice(CheckMinutesQuery query);
        Task<PageList<MeetingRoomInfo>> GetCRoomByRIDs(RoomQuery query);
        Task<List<CalendarsMeetInfo>> GetOrgCalendars(CalendarsMeetQuery query);
        Task<DataTable> GetCInfoPwdByID(int cinfoId);
        Task<List<MeetRoomPwd>> GetCRoomPwd(CInfoPwdQuery obj);
        Task<List<StrategyInfo>> GetStrategyInfo();
        Task<StrategyInfo> GetStrategyInfoByID(StrategyInfo query);
        Task<PageList<MeetingInfo>> GetAllCInfoPassWord(CInfoQuery query);
        Task<(bool, string, int)> OrgcalendarsOrder(MeetingOrder entity);
        Task<PageList<MeetRooMPIN>> GetCityCInfoPassWord(CInfoQuery obj);
        Task<(bool, string)> UpdatePassCode(MeetingRoomOrder obj);
        Task<(bool, string, int)> UpdateOrgcalendars(MeetingOrder entity);
        Task<(bool, string, int)> DeleteOrgcalendars(MeetingOrder entity);
        Task<MeetingInfoSingle> GetOrgcalendarsByID(CInfoQuery query);
        (bool, string, int) InsertCInfoToOrgcalendars(int ID);
        (bool, string, int) InsertCInfoToOrgcalendarsForBPM(string strBOTID);
        Task<(bool, string, int)> UpdateOrgcalendarsByCInfoID(int ID);
        Task<(bool, string, int)> deleteCInfoToOrgcalendars(int ID);
    }
}
